package com.wave.system.domain.bo;

import com.wave.common.core.domain.BaseEntity;
import com.wave.common.core.validate.AddGroup;
import com.wave.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 系统设置业务对象 sys_setting
 *
 * @author wave
 * @date 2024-10-15
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class SysSettingBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = {EditGroup.class})
    private Long id;

    /**
     * wms系统地址
     */
    @NotBlank(message = "wms系统地址不能为空", groups = {AddGroup.class, EditGroup.class})
    private String wmsAddress;

    /**
     * mes系统地址
     */
    @NotBlank(message = "mes系统地址不能为空", groups = {AddGroup.class, EditGroup.class})
    private String mesAddress;

    /**
     * 自动呼叫AGV送空工装架到拆盘机 0-开启 1-关闭
     */
    @NotNull(message = "自动呼叫AGV送空工装架到拆盘机不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer agvSetting;

    /**
     * 自动呼叫AGV送走叠片机工装架 0-开启 1-关闭
     */
    @NotNull(message = "自动呼叫AGV送走叠片机工装架不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer agvSettingSa;

    /**
     * 生产排布设置 0-人工设置 1-自动调度
     */
    @NotNull(message = "生产排布设置不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer produceSetting;

    /**
     * 白班开始时间
     */
    @NotBlank(message = "白班开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String dayShiftStart;

    /**
     * 白班结束时间
     */
    @NotBlank(message = "白班结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String dayShiftEnd;

    /**
     * 夜班开始时间
     */
    @NotBlank(message = "夜班开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String nightShiftStart;

    /**
     * 夜班结束时间
     */
    @NotBlank(message = "夜班结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String nightShiftEnd;

    /**
     * 清理生产记录开关 0-清理 1-不清理
     */
    @NotNull(message = "清理生产记录开关(0-清理 1-不清理)不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer cleanSetting;

    /**
     * 设置清理生产记录时有值，表示清理的历史月份
     */
    private Integer cleanHistoryMonth;


}
